home *** CD-ROM | disk | FTP | other *** search
- Analyzer docuementation
-
-
- This program will analyze any DBman or H & D base command
- file, cross reference any other text file and also indent any
- command file base on the control words "IF, DO WHILE or
- CASE."
-
- In analyzing the command file you have the option to indent,
- graphically connect the appropriate command structures, and
- analyze the logic for example:
-
- SET TALK OFF
- use FM D:\database.stf\ATTORNEY.dbf INDEX D:\index.stf\NAME.ATT
- SET FM FILTER TO VAL(DTOC(M.END))=0
- go FM TOP
- y.ct=0
- do while y.ct <8
- y.ct1=str(y.ct,1)
- X.att_list&y.ct1 =""
- inc y.ct
- enddo
- y.ct=0
- y.ct1=str(y.ct,1)
- X.big_list=","
- go fm top
- do while not eof(fm)
- if len(X.att_list&y.ct1) > 220
- X.att_list&y.ct1=substr(X.att_list&y.ct1,1,;
- len(X.att_list&y.ct1)-1)
- X.big_list=X.big_list+'X.att_list&y.ct1,'
- y.ct1=str(1+ (val(y.ct1)),1)
-
- IF LEN(TRIM(M.LAST))>0
- X.att_list&y.ct1 = X.att_list&y.ct1;
- +!(substr(m.FIRST,1,1))+'. ';
- +!(SUBSTR(m.MIDDLE,1,1))+'. ';
- +toname(trim(m.LAST))+ ','
- ENDIF
- skip FM 1
- enddo
-
-
- SET FM FILTER TO
-
- save fX to D:\memory.stf\attorney.mem
- CLOSE FM
- return
-
- becomes------------------------------------------:
-
- 1 SET TALK OFF
- 2
- 3 use FM D:\database.stf\ATTORNEY.dbf INDEX D:\index.stf\NAME.ATT
- 4 SET FM FILTER TO VAL(DTOC(M.END))=0
- 5 go FM TOP
- 6 y.ct=0
- 7 DO WHILE y.ct <8
- 8 | y.ct1=str(y.ct,1)
- 9 | X.att_list&y.ct1 =""
- 10 | inc y.ct
- 11 ENDDO
- 12 y.ct=0
- 13 y.ct1=str(y.ct,1)
- 14 X.big_list=","
- 15 go fm top
- 16 DO WHILE not eof(fm)
- 17 | IF len(X.att_list&y.ct1) > 220
- 18 | | X.att_list&y.ct1=substr(X.att_list&y.ct1,1,;
- 19 | | len(X.att_list&y.ct1)-1)
- 20 | | X.big_list=X.big_list+'X.att_list&y.ct1,'
- 21 | | y.ct1=str(1+ (val(y.ct1)),1)
- 22 | |
- 23 | | IF LEN(TRIM(M.LAST))>0
- 24 | | | X.att_list&y.ct1 = X.att_list&y.ct1;
- 25 | | | +!(substr(m.FIRST,1,1))+'. ';
- 26 | | | +!(SUBSTR(m.MIDDLE,1,1))+'. ';
- 27 | | | +toname(trim(m.LAST))+ ','
- 28 | | ENDIF
- 29 | | skip FM 1
- 30 | ENDDO
- 31 |
- 32 |
- 33 | SET FM FILTER TO
- 34 |
- 35 | save fX to D:\memory.stf\attorney.mem
- 36 | CLOSE FM
- 37 | return
- 38 |
-
- CONTROL LINES FOR FILE Att_gen.asc.
- ---------------------------------------------------
- 7 DO WHILE y.ct <8
- 11 ENDDO
- 16 DO WHILE not eof(fm)
- 17 | IF len(X.att_list&y.ct1) > 220
- 23 | | IF LEN(TRIM(M.LAST))>0
- 28 | | ENDIF
- 30 | ENDDO
-
- LOGIC ERRORS FOR FILE Att_gen.asc.
- ---------------------------------------------------
- IF without ENDIF in line 17
- IF in line 17 between WHILE loop lines 16 30
-
- VARIABLE CROSS REFERENCE FOR FILE Att_gen.asc.
- ---------------------------------------------------
- ATTORNEY.dbf 3
- .CLOSE 36
- D 3 3 35
- DTOC 4
- ENDIF 28
- FILTER 4 33
- FM 3 4 5 29 33 36
- IF 23
- INDEX 3
- LEN 23
- M.END 4
- M.LAST 23
- NAME.ATT 3
- OFF 1
- SET 1 4 33
- SUBSTR 26
- TALK 1
- TO 4 33
- TOP 5
- TRIM 23
- VAL 4
- X.att_list 9 17 18 18 19 20 24 24
- X.big_list 14 20 20
- attorney.mem 35
- database.stf 3
- do 7 16
- enddo 11 30
- eof 16
- fX 35
- fm 15 16
- go 5 15
- if 17
- inc 10
- index.stf 3
- len 17 19
- m.FIRST 25
- m.LAST 27
- m.MIDDLE 26
- memory.stf 35
- not 16
- return 37
- save 35
- skip 29
- str 8 13 21
- substr 18 25
- to 35
- toname 27
- top 15
- trim 27
- use 3
- val 21
- while 7 16
- y.ct 6 7 8 10 12 13
- y.ct1 8 9 13 17 18 18 19 20
- 21 21 24 24
-